/*
RNAvigator is a tool for visualizing secondary structure of RNA
Copyright 2012 Elias La Cour & Peter Bertelsen

This file is part of RNAvigator.

RNAvigator is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

RNAvigator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with RNAvigator.  If not, see <http://www.gnu.org/licenses/>.
*/

package rnavigator.model;

import java.util.ArrayList;
import java.util.LinkedList;

/**
 * Class containing the sequence and structure of an RNA molecule
 */
public class Structure {

    private String filename;
    private String header = " ";
    private String[] baseSequence;
    private String[] dotSequence;  //Internal representation consists of: ":()[]"
    private double[] shapeReactivity;
    private LinkedList<Knot> knots;
    private ArrayList<Base> bases;

    /**
     * @return the baseSequence
     */
    public String[] getBaseSequence() {
        return baseSequence;
    }

    /**
     * @param baseSequence the baseSequence to set
     */
    public void setBaseSequence(String[] baseSequence) {
        this.baseSequence = baseSequence;
    }

    /**
     * @return the dotSequence
     */
    public String[] getDotSequence() {
        return dotSequence;
    }

    /**
     * @param dotSequence the dotSequence to set
     */
    public void setDotSequence(String[] dotSequence) {
        this.dotSequence = dotSequence;
    }

    /**
     * @return the knots
     */
    public LinkedList<Knot> getKnots() {
        return knots;
    }

    /**
     * @param knots the knots to set
     */
    public void setKnots(LinkedList<Knot> knots) {
        this.knots = knots;
    }

    /**
     * @return the bases
     */
    public ArrayList<Base> getBases() {
        return bases;
    }

    /**
     * @param bases the bases to set
     */
    public void setBases(ArrayList<Base> bases) {
        this.bases = bases;
    }

    /**
     * @return the filename
     */
    public String getFilename() {
        return filename;
    }

    /**
     * @param filename the filename to set
     */
    public void setFilename(String filename) {
        this.filename = filename;
    }

    /**
     * @return the header
     */
    public String getHeader() {
        return header;
    }

    /**
     * @param header the header to set
     */
    public void setHeader(String header) {
        this.header = header;
    }

    /**
     * @return the shapeReactivity
     */
    public double[] getShapeReactivity() {
        return shapeReactivity;
    }

    /**
     * @param shapeReactivity the shapeReactivity to set
     */
    public void setShapeReactivity(double[] shapeReactivity) {
        this.shapeReactivity = shapeReactivity;
    }
}
